Image processing device supporting variable data technologies

ABSTRACT

A method for processing image data using a digital camera includes providing a digital camera having a first transformation program as a default program, the first transformation program supporting a first transformation technology. A first communication link is formed between the digital camera and a first remote image processing device. Transformation-related information is obtained from the first remote device, the transformation-related information including information about one or more transformation technologies supported by the first remote device. Whether the first transformation program is supported by the first remote device is determined. A second transformation program supported by the first remote device is searched if the first transformation program is determined not to be supported by the first remote device, the second transformation program supporting a second transformation technology.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.10/405,575 filed Apr. 1, 2003 and entitled “Image Processing DeviceSupporting Variable Data Technologies”, the disclosure of which isincorporated herein by reference.

BACKGROUND OF THE INVENTION

The present invention relates to a method and apparatus for processingimage data.

Digital cameras, including digital still cameras and digital videocameras, have been gaining wide acceptance among consumers recently. Thedigital still cameras (“DSC”) are configured to capture and storeprimarily still pictures or images, whereas the digital video cameras(“DVC”), e.g., camcorders, are configured to capture and store primarilymoving pictures or videos. Many DSCs, however, are also configured totake videos as well as still pictures. Similarly, many DVCs also areconfigured to take still pictures as well as videos. Generally, the DSCsand DVCs are provided with audio recording features as well.

The digital camera is generally connected or linked to a host device toview, transfer, or edit the images captured using the camera. DSC isgenerally coupled to a computer for such a purpose, and DVC is generallycoupled to a television system or computer for such a purpose. Oneexample of a digital camera is disclosed in U.S. Pat. No. 6,362,851,which is assigned to the assignee of the present application, which isincorporated herein by reference.

The world is being proliferated with various consumer electronicdevices, such as, personal digital assistants (“PDAs”), mobile phones,scanners, printers, digital televisions, video conference phones, andthe like, that are provided with image processing capabilities. Theseelectronic devices are generally designed for specific applications sothey are configured to support only specific compression or data formatsand provided with proprietary user interfaces. Even the same type ofelectronic devices support different data compression standards and userinterfaces according to the manufacturers of the devices.

Similarly, the digital cameras are provided with their own specific datacompression technologies and user interfaces. For example, the DVCcommonly uses a digital video (“DV”) format or a Motion Picture ExpertsGroup (“MPEG”) standard set by the International Organization forStandardization/International Electrotechnical Commission (ISO/IEC).Other video compression technologies are the H.261, H.262, and H.263standards of the International Telecommunications Union, Microsoft WMV,Teleconferencing Section (ITU-T), which are generally used for videoconferencing. The DSC commonly uses a Joint Photographic Experts Group(JPEG) standard set by the ISO/ITU for storing images in compressed formusing a discrete cosine transform and entropy coding. Alternatively, thedigital cameras may be provided with proprietary compressiontechnologies. Accordingly, the digital cameras of today are configuredto display captured images with selected types of consumer electronicdevices but are not compatible with many other electronic devices.

BRIEF SUMMARY OF THE INVENTION

In one embodiment, a method for processing image data using a digitalcamera includes providing a digital camera having a first transformationprogram as a default program, the first transformation programsupporting a first transformation technology. A first communication linkis formed between the digital camera and a first remote image processingdevice. Transformation-related information is obtained from the firstremote device, the transformation-related information includinginformation about one or more transformation technologies supported bythe first remote device. Whether the first transformation program issupported by the first remote device is determined. A secondtransformation program supported by the first remote device is searchedif the first transformation program is determined not to be supported bythe first remote device, the second transformation program supporting asecond transformation technology.

In another embodiment relates to a method for processing image datausing a digital camera, the digital camera having a first compressionprogram as a default compression program. The method includes forming afirst communication link between the digital camera and a first remoteimage processing device; obtaining transformation-related informationfrom the first remote device, the transformation-related informationincluding information about one or more transformation technologiessupported by the first remote device; determining whether the defaultcompression program is supported by the first remote device; andsearching in a non-volatile memory of the digital camera for anothercompression program if the default compression program is determined notto be supported by the first remote device.

In another embodiment, a method for processing image data using adigital camera includes forming a communication link between the digitalcamera and a remote image processing device; obtainingtransformation-related information from the remote device, thetransformation-related information including information about one ormore compression technologies supported by the remote device; andsearching in a non-volatile memory of the digital camera for acompression program that is supported by the remote device, thenon-volatile memory storing a plurality of compression programs.

In yet another embodiment, an image processing device includes a lens;an image sensor to receive light from the lens; a first storage area tostore image data derived from the light received by the image sensor; asecond storage area to store a plurality of encoding programs suitablefor encoding image data; a communication interface configured to providean interface with a remote image processing device; a programmableprocessor configured to select a first encoding program from theplurality of encoding programs stored in the second storage area andtransform the image data stored in the first storage area according tothe selected encoding program; and a housing enclosing at least theimage sensor, first storage area, second storage area, and theprocessor.

For a further understanding of the nature and advantages of theinvention, reference should be made to the following description takenin conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a digital camera according to oneembodiment of the invention.

FIG. 2 depicts a block diagram of components of a digital camerainvolved in capturing and storing images according to one embodiment ofthe invention.

FIG. 3 depicts a block diagram of components of a digital camerainvolved in performing an identification handshake with a host deviceaccording to one embodiment of the invention.

FIG. 4 depicts a bock diagram of components of a digital camera involvedin transmitting image data to a host device according to one embodimentof the invention.

FIG. 5A depicts a simplified flow chart of a method of image dataprocessing according to one embodiment of the invention.

FIG. 5B depicts a simplified flow chart of a method of image dataprocessing according to another embodiment of the invention.

FIG. 6 depicts a digital still camera 250 configured to support aplurality of transformation technologies according to one embodiment ofthe present invention.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 depicts a digital camera 100 coupled to a host device 102according to one embodiment of the present invention. As used herein,the term “digital camera” refers to an electronic device that capturesstill or moving images and converts or facilitates in converting thecaptured images into digital image data. The digital camera includes adigital still camera that is configured to capture primarily stillimages and a digital video camera, e.g., camcorder, which is configuredto capture primarily moving pictures. The host device 102 may be variousdifferent electronic devices, e.g., a desktop computer, laptop computer,television, optical disk apparatus, video tape player, PDA, mobilephone, scanner, printer, set top box, and other devices that areconfigured to process image data.

The digital camera 100 includes an image sensor 104 that receivesreflected light of an object and converts it to image signals, a buffer106 that receives the image signals from the image sensor, amicroprocessor or processing system 108 that processes the image signalswhich includes converting the image signals to digital data, a digitalsignal processor (DSP) 110 that encodes or compresses the digital datato more manageable data size, a memory or storage area 112 that storesencoded data, and a host interface 114 that serves as a communicationinterface between the digital camera and the host device.

The digital camera 100 also includes a program memory 116, e.g.,non-volatile memory, that stores various “transformation programs.” Inone embodiment, the program memory is a read only memory (ROM). As usedherein, the term “transformation program” refers to an encoding,decoding, decompressing, or transcoding program, or a combinationthereof. For example, the transformation program includes recognizedstandards (e.g., JPEG, MPEG 1, MPEG 2, MPEG 4, H.261, H.262, H.263,WMV), proprietary technologies (or non-standard programs), and the like.As used herein, the term “transformation” or “transform” used withrespect to image data refers to an act relating to encoding, decoding,decompressing, transcoding, reproducing, image processing includingcolor interpolation, scaling, defect correction, or the like. Generally,the image data are “transformed” to facilitate displaying of encodedimage data, for example, on a display area of a host device.

In addition, the digital camera 100 includes a communication interface118 that is configured to link the digital camera with a remoteinformation processing unit (e.g., a server, storage network, a personalcomputer, etc.) via the Internet, a local area network (LAN), a widearea network (WAN), or the like. A display interface 120 enables thecaptured image data to be displayed on a built-in display screen (notshown) of the digital camera that is generally of small screen size. Acontrol bus 122 couples together a plurality of the above components inthe digital camera for transmitting control signals. A data bus 124couples together a plurality of the above components in the digitalcamera for transmitting data. The control signals and data bus may betransmitted over the same bus or different buses according to specificapplication.

FIG. 2 depicts some of the components in the digital camera 100 that areinvolved in capturing and storing image data according to one embodimentof the present invention. The image sensor 104 receives reflected lightof an object and converts it into electronic information representing aplurality of pixels. That is, the sensor 104 outputs image signals foran image, consisting of a plurality of horizontal lines, where each linehas a plurality of pixels. The image sensor includes a mosaic colorfilter comprising various colors to obtain color information of thereflected light, e.g., white (W) segments, green (G) segments, cyan (Cy)segments, and yellow (Ye) segments.

The buffer 106 receives the image signal output by the sensor 104 totemporarily store it to assist the microprocessor 108 in processing theimage signal. In another embodiment, the microprocessor 108 receives theimage signal directly from the sensor 104 without assistance from thebuffer.

The microprocessor or processing system 108 performs analog signalprocessing, analog-to-digital (A/D) conversion, and color digitizationand processing according to the present embodiment. In the presentembodiment, a single microprocessor performs all of these functions. Inanother embodiment, three separate dedicated components perform theabove three functions, e.g., an analog signal processor, ananalog-to-digital converter, and a microprocessor or digital signalprocessor.

The analog signal processing includes sampling, holding, and gammacorrection of the image signal output by the image sensor 104, therebyoutputting an image signal of a predetermined format. The A/D conversioninvolves converting analog image signals resulting from the analogsignal processing into digital data or image data. As used herein, theterm “image data” refers to analog image information that has beenconverted to digital information. The color digitization and processinginvolves generating red color data R, blue color data B, and luminancedata Y from the image data resulting from the A/D conversion process.The luminance data represent a mixture of respective color data at apredetermined ratio, e.g., a ratio of 1:2:1 for red, green and bluecolors, for each pixel element. The color digitization process alsoincludes obtaining chrominance or color difference data.

The DSP or encoder 110 encodes or compresses the processed image dataoutput by the microprocessor according to a default format of thedigital camera 100. The encoding reduces the large image data to a moremanageable size. MPEG standard is commonly used encoding technology fordigital cameras primarily configured to take moving picture, i.e., DVCs.On the other hand, JPEG standard is commonly used encoding technologyfor digital cameras primarily configured to take still pictures, i.e.,DSCs.

After the image data have been encoded and reduced to a more manageablesize, they are stored in the memory 112 for subsequent use. The memory112 may be of magnetic tapes, optical disk, or transistor type (Flashmemory or DRAM). In another embodiment, a single microprocessor is usedto perform the functions of both the processing system 108 and the DSP110.

FIG. 3 depicts some of the digital camera components involved ininitiating transmission of image data from the digital camera 100 to thehost device 102, including performing an identification handshake withthe host device, according to one embodiment of the present invention.When the digital camera and the host device are first linked together,they perform an identification handshake. The handshake is used todetermine whether the two devices are compatible and/or in what formatthe digital camera 100 should transmit the image data to the host device102. In one embodiment, the host device transmits identificationinformation, such as, processor type including clock speed, operatingsystem, display type, and transformation programs (e.g., encoding anddecoding technologies) supported, and the like. The host interfaceforwards the host identification information to the microprocessor 108.

Based on this identification information, the microprocessor determineswhether the host device supports the default transformation technologyof the digital camera. (The microprocessor also determines whether it orhost device is better suited to transform the image data, as explainedlater.) If it is determined that the host device does not support thedefault transformation technology, the microprocessor 108 searches theprogram memory 116 for a transformation program that is supported by thehost device. Once located, the transformation program is used toreprogram the microprocessor accordingly, so that the image data can betransformed into a format that is supported by the host device prior totransmitting the image data to the host device. If an appropriatetransformation program is not located in the program memory 116, themicroprocessor 108 requests the host device to transmit a suitabletransformation program. The transmitted program is then used toreprogram the microprocessor 108. However, if the host device also doesnot have or cannot transmit an appropriate transformation program, thenthe microprocessor searches remote information processing units via thecommunication interface 118 for a suitable program.

FIG. 4 depicts some of the digital camera components that are involvedin transmitting image data to the host device 102 according to oneembodiment of the present invention. The microprocessor 108 retrievesthe encoded image data from the memory 112. The encoded image data isreproduced or transformed according to the transformation program thathas been determined to be supported by the host device during theidentification handshake. The transformation may involve transcodingfrom one technology, e.g., MPEG, to another technology, e.g. H.263.Alternatively, the transformation may involve decoding the encoded imagedata and then encoding them to a technology supported by the hostdevice. The transformation also may involve a combination oftranscoding, decoding, and encoding.

In one embodiment, the encoded data is transmitted without furthertransformation if the microprocessor determines that the host device hassuperior reproduction or transformation capability than the digitalcamera, thereby shifting the work to more efficient device. If the hostdevice is determined not to have an appropriate transformation program,the digital camera 100 may also transmit the transformation program tothe host device along with the encoded image data. Such a transformationprogram may be obtained from the program memory 116 in the digitalcamera 100 or obtained from a remote location via the communicationinterface 118. In one embodiment, the transformation is shifted to thehost device only if it is significantly more efficient or powerful thanthe digital camera.

FIG. 5A depicts a process 200 for transmitting image data from thedigital camera 100 to the host device 102 according to one embodiment ofthe present invention. The digital camera 100 is linked to the hostdevice 102 using the host interface 114 (step 202). The link may be aphysical link or wireless link. The host device may be various differentelectronic devices, such as a computer, PDA, cell phone, scanner, asexplained previously. The digital camera and the host device perform anidentification handshake (step 204). The host device transmitsinformation relating to transformation of image data, e.g., processortype, display type and size, operating system, transformation program ortechnology supported, and the like. The microprocessor uses theinformation transmitted by the host device to determine whether the hostor camera (also referred as the “device”) is best or better suited forreproduction and/or display of the image data. (step 206). Thisdetermination may be based on various criteria, e.g., the speed ofrespective processors and the size of the respective displays. In oneembodiment, the determination criteria may be set or modified by a useraccording to his or her preferences.

Thereafter, the microprocessor also uses the information transmitted bythe host device to determine whether the default programs of the digitalcamera (encoding program) and the host (decoding program) are compatiblewith each other (step 208).

If not compatible, the microprocessor determines whether the digitalcamera and/or the host device have programs that are compatible (step210). If one or more compatible programs have been located, themicroprocessor identifies the best one from the available, compatiblereproduction programs in the camera or host (step 212) If a compatibleprogram is not found in the camera or host, the microprocessor searchesfor compatible reproduction programs in a remote server or location viaa network, such as the Internet (step 214).

Once a suitable compatible program has been located, the program isloaded onto the “best reproduction device,” i.e., the camera or hostthat has been determined to be best suited for the reproduction anddisplay of the image data at step 206 (step 216). The image data aretransmitted to the best reproduction device (step 218). The image datais reproduced in the best reproduction device using the reproductionprogram provided therein (step 220). Thereafter, the reproduced data isdisplayed on the display area of the best reproduction device (step222).

Referring back to step 208, the process proceeds to step 218 if themicroprocessor determines that the default programs of the camera andhost are compatible to with each other. Thereafter, the step 218 to step222 are performed in a similar manner as explained above.

FIG. 5B depicts a process 260 for transmitting image data from thedigital camera 100 to the host device 102 according to anotherembodiment of the present invention. The digital camera 100 is linked tothe host device 102 using the host interface 114 (step 262). The linkmay be a physical link or wireless link. The host device may be variousdifferent electronic devices, such as a computer, PDA, cell phone,scanner, as explained before. The digital camera and the host deviceperform an identification handshake (step 264). The host devicetransmits information relating to transformation of image data, e.g., aprocessor type, display type, operating system, transformation programor technology supported, and the like. The microprocessor uses theinformation transmitted by the host device and determines whether thedigital camera's default encoding technology is supported by the hostdevice's default decoding technology (step 266). If supported, thedigital camera transmits the encoded image data to the host device (step268). The encoded image data is then reproduced or decoded in the hostdevice (step 270).

If the digital camera's default encoding technology is not supported bythe host device's default program, the microprocessor determines whetherthe digital camera has any program that is compatible with the defaultprogram of the host (step 272). If so, the microprocessor loads thetranscoder (step 274) and transcodes the encoded image data (step 276).The transcoded image data is transmitted to the host device (step 278)and reproduced in the host device using the default program of the host(step 280).

If the digital camera does not have a program that is compatible withthe default program of the host device, it is determined whether thehost device has an alternate program that is compatible with the defaultencoding program of the digital camera (step 282). If so, the alternateprogram is loaded in the host device (step 284). The digital cameratransmits the image data to the host device (step 268), and the imagedata are reproduced in the host device thereafter (step 270).

At step 282, if the host device does not have a program that iscompatible with the default program of the digital camera, it isdetermined whether there is any encode program in the digital camerathat is compatible with any decode program in the host device (step286). If so determined, a set of compatible programs in the digitalcamera and the host device are selected (step 288). If there are morethan one set of compatible programs, the best set is selected from them.Thereafter, the transcode programs are loaded in the host device and thedigital camera (steps 290 and 274). The image data are transcoded by thedigital camera using the newly loaded program and then transmitted tothe host device (steps 276 and 278). The host device than reproduces theimage data (step 280).

At step 286, if compatible programs cannot be found in the digitalcamera and the host device, the host is requested to search a remotecomputer system or database via a network connection to search forcompatible programs (step 292). An appropriate set of programs isselected from a plurality of possible program sets that have beenlocated by the search (step 294). The selected programs are loaded onthe digital camera and the host device (steps 296). The image data aretranscoded and transmitted to the host device by the digital camera(steps 276 and 278). Thereafter, the image data are reproduced in thehost device. If a set of compatible programs is not found at the step292, a message stating that there is an incompatibility problem betweenthe host device and digital camera is displayed (step 298).

FIG. 6 depicts a digital still camera 250 configured to support aplurality of transformation technologies according to one embodiment ofthe present invention. The digital still camera 250 includes an imagingdevice 300 and a processing system 350. The imaging device includes alens 302 having an iris, a filter 304, an image sensor 306, a timinggenerator 308, an analog signal processor (ASP) 310, ananalog-to-digital (A/D) converter 312, a digital signal processor (DSP)314, and one or more motors 316.

In operation, imaging device 300 captures an image of object 301 viareflected light impacting the image sensor 306 along an optical path318. The image sensor 306 generates image signals representing thecaptured image. The image signals are then routed through the ASP 310,A/D converter 312 and DSP 314. The DSP 314 has outputs coupled to thetiming generator 308, ASP 310, and motors 316 to control thesecomponents. The DSP 314 also has its output coupled to the processingsystem 350 via a bus 351. The image signals that have been converted todigital image data are transmitted to system 350 and processed therein.

In one embodiment, the processing system 350 includes a bus interface352, a processor 354, a read-only memory (ROM) 356, an input device 358,a random access memory (RAM) 360, an I/O interface 362, a flash memory364, a non-volatile memory 366, and an internal bus 368.

The bus interface 352 is a bi-directional first-in, first-out interfacefor receiving the raw image data and control signals passed between thesystem 350 and the DSP 314. The processor 354 executes programminginstructions stored in the ROM 356 and RAM 360 to perform variousoperations. In one embodiment, the processor 354 encodes the image datato reduce them to a more manageable size, i.e., performs the functionsof the DSP 110 of the digital camera 100 (FIG. 1). The ROM 356 generallystores a set of computer readable program instructions which control howthe processor 354 accesses, transforms and outputs the image data. Inone implementation, the ROM 356 also stores a start-up program or filethat enables a user to access the images stored in the flash memoryusing any computer whether it has a companion driver software installedor not.

The input device 358 generally includes one or more control buttons (notshown), which are used to input operating signals that are translated bythe processor 354 into an image capture request, an operating modeselection request, and various control signals for the imaging device300. The I/O Interface 362 is coupled to the internal bus 368 and has anexternal port connector (not shown) that can be used to couple digitalcamera 50 to a host device 400 for viewing and editing the image datastored in flash memory 364. As explained previously in connection withthe digital camera 100, the image data stored in the memory 364 may bereproduced in the digital still camera 250 or at the host device 400. Ifreproduced in the digital still camera 250, the processor 354 reproducesthe image data. The image data transmission and transformation of thisembodiment involves a substantially similar process as that explained inconnection with the process 200 (see, FIG. 5A).

As will be understood by those skilled in the art, the present inventionmay be embodied in other specific forms without departing from theessential characteristics thereof. Accordingly, the foregoingdescription is intended to be illustrative, but not limiting, of thescope of the invention which is set forth in the following claims.

1. A method for processing image data using a digital camera, the methodcomprising: providing a digital camera having a first transformationprogram as a default program, the first transformation programsupporting a first transformation technology; forming a firstcommunication link between the digital camera and a first remote imageprocessing device; obtaining transformation-related information from thefirst remote device, the transformation-related information includinginformation about one or more transformation technologies supported bythe first remote device; determining whether the first transformationprogram is supported by the first remote device; and searching for asecond transformation program supported by the first remote device ifthe first transformation program is determined not to be supported bythe first remote device, the second transformation program supporting asecond transformation technology; wherein said first and secondtransformation programs perform at least one of color interpolation,scaling, and defect correction.
 2. The method of claim 1, furthercomprising: providing a plurality of transformation programs in anon-volatile memory in the digital camera, the plurality oftransformation programs including the first and second transformationprograms.
 3. The method of claim 1, wherein the first and secondtransformation programs are encoding or compression programs, theplurality of transformation programs including at least one decoding ordecompression program.
 4. The method of claim 1, wherein the digitalcamera is a digital still camera or a digital video camera.
 5. Themethod of claim 1, wherein the digital camera is a portable electronicdevice configured to take pictures in a digital format.
 6. The method ofclaim 5, wherein the portable electronic device is a mobile phone orpersonal digital assistant including a lens, an image sensor, and aprocessor.
 7. The method of claim 1, further comprising: executing thesecond transformation program that is supported by the first remotedevice and stored in a non-volatile memory within the digital camera. 8.The method of claim 1, wherein the searching step includes accessing anon-volatile memory provided in the digital camera, the method furthercomprising: loading the second transformation program stored in anon-volatile memory of the digital camera to a volatile memory of thedigital camera; transforming the image data using the secondtransformation program; and transmitting the transformed image data tothe first remote device.
 9. The method of claim 1, further comprising:providing a plurality of transformation programs in a non-volatilememory of the digital camera, the plurality of transformation programsincluding the first and second transformation programs; determiningwhether the first remote device includes any transformation program thatis compatible with the first transformation program of the digitalcamera; and initiating, at the first remote device, execution of atransformation program that has been determined to be compatible withthe first transformation program of the digital camera.
 10. The methodof claim 1, further comprising: providing a plurality of transformationprograms in a non-volatile memory of the digital camera, the pluralityof transformation programs including the first and second transformationprograms; accessing a second remote device via a second communicationlink to search for a third transformation program that can facilitatereproduction of the image data at the first remote device; anddownloading the third transformation program to the digital camera orthe first remote device.
 11. A method for processing image data using adigital camera, the digital camera having a first compression program asa default compression program, the method comprising: forming a firstcommunication link between the digital camera and a first remote imageprocessing device; obtaining transformation-related information from thefirst remote device, the transformation-related information includinginformation about one or more transformation technologies supported bythe first remote device; determining whether the default compressionprogram is supported by the first remote device; and searching in anon-volatile memory of the digital camera for another compressionprogram if the default compression program is determined not to besupported by the first remote device; wherein said first and secondtransformation programs perform at least one of color interpolation,scaling, and defect correction.
 12. The method of claim 11, wherein thedigital camera includes image data that have been compressed using thedefault compression program, the method further comprising: transcodingthe image data using the another compression program; and transmittingthe transcoded image data to the first remote device via the firstcommunication link.
 13. The method of claim 11, further comprising:forming a second communication link between the digital camera and asecond remote device; searching the second remote device for acompression program that is supported by the first remote device;locating the compression program that is supported by the first remotedevice at the second remote device; and downloading the locatedcompression program to the digital camera from the second remote device.14. The method of claim 11, further comprising: forming a secondcommunication link between the digital camera and a second remotedevice; searching the second remote device for a decompression programthat is supported by the digital camera; locating the decompressionprogram that is supported by the digital camera at the second remotedevice; and downloading the located decompression program to the firstremote device from the second remote device.
 15. The method of claim 14,wherein the digital camera is a digital still camera or a camcorder, andthe second communication link is a link formed using the Internet, andthe second remote device is a server, storage system, or storagesubsystem.
 16. A method for processing data using an electronic device,the method comprising: forming a communication link between theelectronic device and a remote image processing device; obtainingtransformation-related information from the remote device, thetransformation-related information including information about one ormore compression technologies supported by the remote device; searchingin a non-volatile memory of the electronic device for a compressionprogram that is supported by the remote device, the non-volatile memorystoring a plurality of compression programs; locating a compressionprogram stored in the non-volatile memory that is compatible with adecompression program available to the remote device; and loading thelocated compression program from the non-volatile memory of theelectronic device to a volatile memory of the electronic device;retrieving compressed data from a storage location accessible to theelectronic device; and transmitting the retrieved image data and adecompression program suitable for decompressing the retrieved data tothe remote device, so that the retrieved data may be decompressed at theremote device; and determining whether the electronic device or theremote device is better suited for decompressing image data.